#!/usr/bin/env python
# *-* coding: utf-8 *-*
#imports
import pygame, random, sys, os,cPickle
from sys import exit
from pygame.locals import *
import Menu2,Instrucoes,classico, creditos


###### abre ranking de acordo com o necessario #####
def classic_facil():
	try:
		return cPickle.load(file("classic_facil.dat","r"))
	except: pass
	
def classic_medio():
	try:
		return cPickle.load(file("classic_medio.dat","r"))
	
	except: pass
	
def classic_dificil():
	try:
		return cPickle.load(file("classic_dificil.dat","r"))
	
	except: pass

####### funcao exibir ranking #######
def ranking():
	display = pygame.display.set_mode((800,600), 0, 32)
	
	clock = pygame.time.Clock()
	texto = pygame.font.SysFont("comic sams",43, bold = False)
	cor = (255, 255, 255)
	#Botao Voltar
	botoes_voltar = [pygame.image.load("Novas_Imagens" + os.sep + "voltar_" + str(i) + ".png").convert_alpha() for i in range(3)]
	botao_voltar = botoes_voltar[0]
	tamanho_voltar = botao_voltar.get_size()
	posicao_voltar = (0, 550)
	#Botao Facil
	posicao_facil = (222,137)
	tamanho_facil = (63,39)
	#Botao Medio
	posicao_medio = (300,137)
	tamanho_medio = (79,39)
	#Botao Dificil
	posicao_dificil = (392,137)
	tamanho_dificil = (84,39)
	funcionando = True
	pressed = False
	#ranking default
	rank = "facil"
	
	while funcionando:
		clock.tick(30)
		for event in pygame.event.get():
			if event.type == QUIT:
				funcionando = False
			if event.type == KEYDOWN and event.key == K_ESCAPE:
				funcionando = False
		
		
		#chamada a utilização do mouse
		posicao_mouse = pygame.mouse.get_pos()
		mouse_pressionado = pygame.mouse.get_pressed()
			
		if posicao_facil[0] <= posicao_mouse[0] <= posicao_facil[0] + tamanho_facil[0] and posicao_facil[1] <= posicao_mouse[1] <= posicao_facil[1] + tamanho_facil[1]:

			if mouse_pressionado[0]:
				rank = "facil"
				
		elif posicao_medio[0] <= posicao_mouse[0] <= posicao_medio[0] + tamanho_medio[0] and posicao_medio[1] <= posicao_mouse[1] <= posicao_medio[1] + tamanho_medio[1]:
			
			if mouse_pressionado[0]:
				rank = "medio"
				
		elif posicao_dificil[0] <= posicao_mouse[0] <= posicao_dificil[0] + tamanho_dificil[0] and posicao_dificil[1] <= posicao_mouse[1] <= posicao_dificil[1] + tamanho_dificil[1]:
			
			if mouse_pressionado[0]:
				rank = "dificil"
				
		# Clique Botao voltar

		if posicao_voltar[0] <= posicao_mouse[0] <= posicao_voltar[0] + tamanho_voltar[0] and posicao_voltar[1] <= posicao_mouse[1] <= posicao_voltar[1] + tamanho_voltar[1]:

			botao_voltar = botoes_voltar[1]

			if mouse_pressionado[0]:
				botao_voltar = botoes_voltar[2]
				pressed = True
				

			if pressed and not mouse_pressionado[0]:
				botao_voltar = botoes_voltar[1]
				pressed = False
				funcionando = False
				
		else:
			botao_voltar = botoes_voltar[0]

		
		if rank == "facil":
			fundo = pygame.image.load("Novas_Imagens" + os.sep + "menu_facil.png").convert_alpha()
			arquivo = classic_facil()
			primeiro = texto.render("1 - %-14s" % arquivo[1][0],True,cor)
			primeiro_tempo = texto.render("%d" % arquivo[1][1],True,cor)
			segundo = texto.render("2 - %-14s" % arquivo[2][0],True,cor)
			segundo_tempo = texto.render("%d" % arquivo[2][1],True,cor)
			terceiro = texto.render("3 - %-14s" % arquivo[3][0],True,cor)
			terceiro_tempo = texto.render("%d" % arquivo[3][1],True,cor)
			quarto = texto.render("4 - %-14s" % arquivo[4][0],True,cor)
			quarto_tempo = texto.render("%d" % arquivo[4][1],True,cor)
			quinto = texto.render("5 - %-14s" % arquivo[5][0],True,cor)
			quinto_tempo = texto.render("%d" % arquivo[5][1],True,cor)
			display.blit(fundo,(0,0))
			display.blit(primeiro,(250,200))
			display.blit(primeiro_tempo,(530,200))
			display.blit(segundo,(250,240))
			display.blit(segundo_tempo,(530,240))
			display.blit(terceiro,(250,280))
			display.blit(terceiro_tempo,(530,280))
			display.blit(quarto,(250,320))
			display.blit(quarto_tempo,(530,320))
			display.blit(quinto,(250,360))
			display.blit(quinto_tempo,(530,360))
			display.blit(botao_voltar,posicao_voltar)
			pygame.display.update()
			
		elif rank == "medio":
			fundo = pygame.image.load("Novas_Imagens" + os.sep + "menu_medio.png").convert_alpha()
			arquivo = classic_medio()
			primeiro = texto.render("1 - %-14s" % arquivo[1][0],True,cor)
			primeiro_tempo = texto.render("%d" % arquivo[1][1],True,cor)
			segundo = texto.render("2 - %-14s" % arquivo[2][0],True,cor)
			segundo_tempo = texto.render("%d" % arquivo[2][1],True,cor)
			terceiro = texto.render("3 - %-14s" % arquivo[3][0],True,cor)
			terceiro_tempo = texto.render("%d" % arquivo[3][1],True,cor)
			quarto = texto.render("4 - %-14s" % arquivo[4][0],True,cor)
			quarto_tempo = texto.render("%d" % arquivo[4][1],True,cor)
			quinto = texto.render("5 - %-14s" % arquivo[5][0],True,cor)
			quinto_tempo = texto.render("%d" % arquivo[5][1],True,cor)
			display.blit(fundo,(0,0))
			display.blit(primeiro,(250,200))
			display.blit(primeiro_tempo,(530,200))
			display.blit(segundo,(250,240))
			display.blit(segundo_tempo,(530,240))
			display.blit(terceiro,(250,280))
			display.blit(terceiro_tempo,(530,280))
			display.blit(quarto,(250,320))
			display.blit(quarto_tempo,(530,320))
			display.blit(quinto,(250,360))
			display.blit(quinto_tempo,(530,360))
			display.blit(botao_voltar,posicao_voltar)
			pygame.display.update()
			
		elif rank == "dificil":
			fundo = pygame.image.load("Novas_Imagens" + os.sep + "menu_dificil.png").convert_alpha()
			arquivo = classic_dificil()
			primeiro = texto.render("1 - %-14s" % arquivo[1][0],True,cor)
			primeiro_tempo = texto.render("%d" % arquivo[1][1],True,cor)
			segundo = texto.render("2 - %-14s" % arquivo[2][0],True,cor)
			segundo_tempo = texto.render("%d" % arquivo[2][1],True,cor)
			terceiro = texto.render("3 - %-14s" % arquivo[3][0],True,cor)
			terceiro_tempo = texto.render("%d" % arquivo[3][1],True,cor)
			quarto = texto.render("4 - %-14s" % arquivo[4][0],True,cor)
			quarto_tempo = texto.render("%d" % arquivo[4][1],True,cor)
			quinto = texto.render("5 - %-14s" % arquivo[5][0],True,cor)
			quinto_tempo = texto.render("%d" % arquivo[5][1],True,cor)
			display.blit(fundo,(0,0))
			display.blit(primeiro,(250,200))
			display.blit(primeiro_tempo,(530,200))
			display.blit(segundo,(250,240))
			display.blit(segundo_tempo,(530,240))
			display.blit(terceiro,(250,280))
			display.blit(terceiro_tempo,(530,280))
			display.blit(quarto,(250,320))
			display.blit(quarto_tempo,(530,320))
			display.blit(quinto,(250,360))
			display.blit(quinto_tempo,(530,360))
			display.blit(botao_voltar,posicao_voltar)
			pygame.display.update()
		
		

width, height = 800, 600
pressed = False
pygame.init()
screen = pygame.display.set_mode((width,height), 0, 32)
pygame.display.set_caption("Minesweepy")
background = pygame.image.load("Novas_Imagens" + os.sep + "background.png").convert_alpha()
clock = pygame.time.Clock()

#Botao Ranking
botoes_ranking = [pygame.image.load("Novas_Imagens" + os.sep + "ranking_" + str(i) + ".png").convert_alpha() for i in range(3)]
botao_ranking = botoes_ranking[0]
tamanho_ranking = botao_ranking.get_size()
posicao_ranking = (30, 280)

#Botao Como Jogar?
botoes_como_jogar = [pygame.image.load("Novas_Imagens" + os.sep + "como_jogar_" + str(i) + ".png").convert_alpha() for i in range(3)]
botao_como_jogar = botoes_como_jogar[0]
tamanho_como_jogar = botao_como_jogar.get_size()
posicao_como_jogar = (30, 227)

#Botao jogar
botoes_jogar = [pygame.image.load("Novas_Imagens" + os.sep + "jogar_" + str(i) + ".png").convert_alpha() for i in range(3)]
botao_jogar = botoes_jogar[0]
tamanho_jogar = botao_jogar.get_size()
posicao_jogar = (45, 170)
	
#Botao Creditos
botoes_creditos = [pygame.image.load("Novas_Imagens" + os.sep + "creditos_" + str(i) + ".png").convert_alpha() for i in range(3)]
botao_creditos = botoes_creditos[0]
tamanho_creditos = botao_creditos.get_size()
posicao_creditos = (30, 520)
	
#Botao Sair
botoes_sair = [pygame.image.load("Novas_Imagens" + os.sep + "sair_" + str(i) + ".png").convert_alpha() for i in range(3)]
botao_sair = botoes_sair[0]
tamanho_sair = botao_sair.get_size()
posicao_sair = (660,520)
	
while True:
	clock.tick(30)
	for event in pygame.event.get():
		if event.type == QUIT:
			exit()
			
	#chamada a utilização do mouse
	posicao_mouse = pygame.mouse.get_pos()
	mouse_pressionado = pygame.mouse.get_pressed()

	#escolha das opções do menu
	#ecolha de start
	
	#Botao Creditos
	
	if posicao_creditos[0] <= posicao_mouse[0] <= posicao_creditos[0] + tamanho_creditos[0] and posicao_creditos[1] <= posicao_mouse[1] <= posicao_creditos[1] + tamanho_creditos[1]:
		
		botao_creditos = botoes_creditos[1]
		
		if mouse_pressionado[0]:
			botao_creditos = botoes_creditos[2]
			pressed = True
			
		if pressed and not mouse_pressionado[0]:
			botao_creditos = botoes_creditos[1]
			creditos.main()
	
	else: botao_creditos = botoes_creditos[0]		
	
	#Botao Ranking

	if posicao_ranking[0] <= posicao_mouse[0] <= posicao_ranking[0] + tamanho_ranking[0] and posicao_ranking[1] <= posicao_mouse[1] <= posicao_ranking[1] + tamanho_ranking[1]:

		botao_ranking = botoes_ranking[1]

		if mouse_pressionado[0]:
			botao_ranking = botoes_ranking[2]
			pressed = True
		if pressed and not mouse_pressionado[0]:
			botao_ranking = botoes_ranking[1]
			ranking()

	else: botao_ranking = botoes_ranking[0]

	#Botao Como Jogar

	if posicao_como_jogar[0] <= posicao_mouse[0] <= posicao_como_jogar[0] + tamanho_como_jogar[0] and posicao_como_jogar[1] <= posicao_mouse[1] <= posicao_como_jogar[1] + tamanho_como_jogar[1]:

		botao_como_jogar = botoes_como_jogar[1]

		if mouse_pressionado[0]:
			botao_como_jogar = botoes_como_jogar[2]
			pressed = True
			
			
		if pressed and not mouse_pressionado[0]:
			botao_como_jogar = botoes_como_jogar[1]
			Instrucoes.main()
			
	else: botao_como_jogar = botoes_como_jogar[0]
		
	#Botao Novo Jogo

	if posicao_jogar[0] <= posicao_mouse[0] <= posicao_jogar[0] + tamanho_jogar[0] and posicao_jogar[1] <= posicao_mouse[1] <= posicao_jogar[1] + tamanho_jogar[1]:

		botao_jogar = botoes_jogar[1]

		if mouse_pressionado[0]:
			botao_jogar = botoes_jogar[2]
			pressed = True
			
				
		if pressed and not mouse_pressionado[0]:
			botao_jogar = botoes_jogar[1]
			Menu2.main()

	else:
		botao_jogar = botoes_jogar[0]
	
	 #Botao Sair

	if posicao_sair[0] <= posicao_mouse[0] <= posicao_sair[0] + tamanho_sair[0] and posicao_sair[1] <= posicao_mouse[1] <= posicao_sair[1] + tamanho_sair[1]:

		botao_sair = botoes_sair[1]			
		if mouse_pressionado[0]:
			botao_sair = botoes_sair[2]
			pressed = True
			
		if pressed and not mouse_pressionado[0]:
			botao_sair = botoes_sair[1]
			exit()
	else:
		botao_sair = botoes_sair[0]
		
	if not mouse_pressionado[0]:
		pressed = False
		
		
	#Coloca imagens e atualiza a tela
	screen.blit(background , (0,0))
		
	screen.blit(botao_sair , posicao_sair)
	screen.blit(botao_jogar , posicao_jogar)
	screen.blit(botao_como_jogar , posicao_como_jogar)
	screen.blit(botao_creditos , posicao_creditos)
	screen.blit(botao_ranking , posicao_ranking)
	
	pygame.display.update() # update()
	
